package com.ifast.sys.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.ifast.common.base.CoreService;
import com.ifast.common.domain.Tree;
import com.ifast.common.domain.TreeNode;
import com.ifast.sys.domain.DeptDO;

import java.util.List;

/**
 * <pre>
 * 部门管理
 * </pre>
 * <small> 2018年3月23日 | Aron</small>
 */
public interface DeptService extends CoreService<DeptDO> {
    
	Tree<DeptDO> getTree(String depId);
	
	List<TreeNode> getDeptByAuth(String depId);

	List<TreeNode> getDeptHanyeByAuth(String depId);

	List<TreeNode> getZTree(String depId);
	
	boolean checkDeptHasUser(String deptId);

	Page<DeptDO> listPage(Page<?> page, DeptDO deptDO);

	Page<DeptDO> listPageDwhy(Page<?> page, DeptDO deptDO);

	List<DeptDO> listDeptUpTree(DeptDO deptDO);

	DeptDO selectMaxCodeByPid(DeptDO deptDO);

	void clInsertDept(DeptDO deptDOC) throws RuntimeException;

	List<DeptDO> listDeptNextByCode(DeptDO deptDOC);

	void updateTree();
}
